]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
appFavorites: Automatically update desktop file names in user settings
authorKalev Lember <kalevlember@gmail.com>
Tue, 22 Jul 2014 12:16:48 +0000 (14:16 +0200)
committerKalev Lember <kalevlember@gmail.com>
Tue, 22 Jul 2014 12:18:06 +0000 (14:18 +0200)
This adds a table with mappings for GNOME apps that have recently
renamed their desktop files, and uses that to update the desktop names
saved in user settings with the new values.

https://bugzilla.gnome.org/show_bug.cgi?id=729429

js/ui/appFavorites.js

index b3896213ce7513c715e731200386afee765d3ec6..77e3c5595e0b2bbf8a62ca59541a169c3b5bf05a 100644 (file)
@@ -6,6 +6,26 @@ const Signals = imports.signals;
 
 const Main = imports.ui.main;
 
+const RENAMED_DESKTOP_IDS = {
+    'baobab.desktop': 'org.gnome.baobab.desktop',
+    'cheese.desktop': 'org.gnome.Cheese.desktop',
+    'dconf-editor.desktop': 'ca.desrt.dconf-editor.desktop',
+    'file-roller.desktop': 'org.gnome.FileRoller.desktop',
+    'gcalctool.desktop': 'gnome-calculator.desktop',
+    'gedit.desktop': 'org.gnome.gedit.desktop',
+    'glchess.desktop': 'gnome-chess.desktop',
+    'gnome-clocks.desktop': 'org.gnome.clocks.desktop',
+    'gnome-documents.desktop': 'org.gnome.Documents.desktop',
+    'gnome-font-viewer.desktop': 'org.gnome.font-viewer.desktop',
+    'gnome-photos.desktop': 'org.gnome.Photos.desktop',
+    'gnome-screenshot.desktop': 'org.gnome.Screenshot.desktop',
+    'gnome-software.desktop': 'org.gnome.Software.desktop',
+    'gnome-weather.desktop': 'org.gnome.Weather.Application.desktop',
+    'gnomine.desktop': 'gnome-mines.desktop',
+    'nautilus.desktop': 'org.gnome.Nautilus.desktop',
+    'polari.desktop': 'org.gnome.Polari.desktop',
+};
+
 const AppFavorites = new Lang.Class({
     Name: 'AppFavorites',
 
@@ -24,6 +44,21 @@ const AppFavorites = new Lang.Class({
 
     reload: function() {
         let ids = global.settings.get_strv(this.FAVORITE_APPS_KEY);
+
+        // Map old desktop file names to the current ones
+        let updated = false;
+        ids = ids.map(function (id) {
+            let newId = RENAMED_DESKTOP_IDS[id];
+            if (newId !== undefined) {
+                updated = true;
+                return newId;
+            }
+            return id;
+        });
+        // ... and write back the updated desktop file names
+        if (updated)
+            global.settings.set_strv(this.FAVORITE_APPS_KEY, ids);
+
         let appSys = Shell.AppSystem.get_default();
         let apps = ids.map(function (id) {
                 return appSys.lookup_app(id);